package com.wolainfo.simulator.model.tfi;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "TRANSACTIONS")
public class Transaction implements Serializable{
    private static final long serialVersionUID = 2156768006676772883L;
    @Id
    private Integer           transactionId;
    private Integer           srcAccountId;
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar          orderDate;
    private Integer           orderDistributorId;
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar          processingDate;
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar          priceDate;
    private Integer           dstAccountId;
    private String            transactionIdn;
    private String            transactionType;
    private Byte              transactionCategory;
    private BigDecimal        negotiatedLoad;
    private Byte              reinvestmentFlag;
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar          reinvestmentDate;
    private String            currency;
    private Byte              valueKind;
    private BigDecimal        amount;
    private BigDecimal        shares;
    private Byte              Status;
    private String            customerIdn;
    private Integer           reversedTransactionId;
    private BigDecimal        loadReductionAddPercent;
    private Byte              redeemingOrder;

    public Integer getTransactionId(){
        return transactionId;
    }

    public void setTransactionId(Integer transactionId){
        this.transactionId = transactionId;
    }

    public Integer getSrcAccountId(){
        return srcAccountId;
    }

    public void setSrcAccountId(Integer srcAccountId){
        this.srcAccountId = srcAccountId;
    }

    public Calendar getOrderDate(){
        return orderDate;
    }

    public void setOrderDate(Calendar orderDate){
        this.orderDate = orderDate;
    }

    public Integer getOrderDistributorId(){
        return orderDistributorId;
    }

    public void setOrderDistributorId(Integer orderDistributorId){
        this.orderDistributorId = orderDistributorId;
    }

    public Calendar getProcessingDate(){
        return processingDate;
    }

    public void setProcessingDate(Calendar processingDate){
        this.processingDate = processingDate;
    }

    public Calendar getPriceDate(){
        return priceDate;
    }

    public void setPriceDate(Calendar priceDate){
        this.priceDate = priceDate;
    }

    public Integer getDstAccountId(){
        return dstAccountId;
    }

    public void setDstAccountId(Integer dstAccountId){
        this.dstAccountId = dstAccountId;
    }

    public String getTransactionIdn(){
        return transactionIdn;
    }

    public void setTransactionIdn(String transactionIdn){
        this.transactionIdn = transactionIdn;
    }

    public String getTransactionType(){
        return transactionType;
    }

    public void setTransactionType(String transactionType){
        this.transactionType = transactionType;
    }

    public Byte getTransactionCategory(){
        return transactionCategory;
    }

    public void setTransactionCategory(Byte transactionCategory){
        this.transactionCategory = transactionCategory;
    }

    public BigDecimal getNegotiatedLoad(){
        return negotiatedLoad;
    }

    public void setNegotiatedLoad(BigDecimal negotiatedLoad){
        this.negotiatedLoad = negotiatedLoad;
    }

    public Byte getReinvestmentFlag(){
        return reinvestmentFlag;
    }

    public void setReinvestmentFlag(Byte reinvestmentFlag){
        this.reinvestmentFlag = reinvestmentFlag;
    }

    public Calendar getReinvestmentDate(){
        return reinvestmentDate;
    }

    public void setReinvestmentDate(Calendar reinvestmentDate){
        this.reinvestmentDate = reinvestmentDate;
    }

    public String getCurrency(){
        return currency;
    }

    public void setCurrency(String currency){
        this.currency = currency;
    }

    public Byte getValueKind(){
        return valueKind;
    }

    public void setValueKind(Byte valueKind){
        this.valueKind = valueKind;
    }

    public BigDecimal getAmount(){
        return amount;
    }

    public void setAmount(BigDecimal amount){
        this.amount = amount;
    }

    public BigDecimal getShares(){
        return shares;
    }

    public void setShares(BigDecimal shares){
        this.shares = shares;
    }

    public Byte getStatus(){
        return Status;
    }

    public void setStatus(Byte status){
        Status = status;
    }

    public String getCustomerIdn(){
        return customerIdn;
    }

    public void setCustomerIdn(String customerIdn){
        this.customerIdn = customerIdn;
    }

    public Integer getReversedTransactionId(){
        return reversedTransactionId;
    }

    public void setReversedTransactionId(Integer reversedTransactionId){
        this.reversedTransactionId = reversedTransactionId;
    }

    public BigDecimal getLoadReductionAddPercent(){
        return loadReductionAddPercent;
    }

    public void setLoadReductionAddPercent(BigDecimal loadReductionAddPercent){
        this.loadReductionAddPercent = loadReductionAddPercent;
    }

    public Byte getRedeemingOrder(){
        return redeemingOrder;
    }

    public void setRedeemingOrder(Integer redeemingOrder){
        this.redeemingOrder = (byte)(int)redeemingOrder;
    }
}
